package com.bulletelc.apollopre.framework;

import android.support.annotation.UiThread;

/**
 * author: lhl
 * date  : 2017/11/15
 * desc  : 所有presenter的父接口,BasePresenter和XxxContract.Presenter都必须实现此接口
 *
 * Presenter实现类要继承BasePresenter并实现对应的XxxContract.Presenter接口
 */

public interface IPresenter<V extends IView> {

    /**
     *
     * @param view
     */
    @UiThread
    void attachView(V view);

    /**
     *
     * @param retainInstance
     */
    @UiThread
    void detachView(boolean retainInstance);

    /**
     * 这个方法一般所执行的任务是在Presenter中从Model层获取数据,并调用View接口显示
     */
    void start();

    /**
     * 当Activity执行onDestroy()时,执行该方法关掉进程(钩子方法)
     */
    void stop();
}
